
package cn.imnaer.service.rpc.share;

import cn.imnaer.service.persistence.model.Record;
import cn.imnaer.service.persistence.model.SharePhoto;
import cn.imnaer.service.rest.resquest.model.Coordinates;
import cn.imnaer.service.rest.resquest.model.SharePhotoCreateParams;
import cn.imnaer.service.rest.resquest.model.ViewFriendInfoParams;
import cn.imnaer.service.rest.view.model.Place;
import cn.imnaer.service.rest.view.model.SharePhotoResponse;

import java.util.List;

public interface SharePhotoComponentRpcApi {
/**
 * 
 * 
 * 因为客户端有缓存，所以参数采用这种方式
 * @param userId
 * @param params
 * @return
 */
    public  List<SharePhotoResponse>   getPersonalSharePhotoList(String userId, ViewFriendInfoParams  params);
    /**
     * 
     * 
     * 
     * 得到我的个人相册里面的所有数据
     * @param userId
     * @return
     */
    public  List<SharePhotoResponse>   getMySharePhotoList(String userId);
    public SharePhoto createSharePhoto(SharePhotoCreateParams createParams);

    public Record<List<Place>, Integer> nearBy(Coordinates coordinates, int pageIndex);


    public List<Place>   searchLocation(String keyword);

    public SharePhotoResponse getSharePhotoDetail(String userId, String sharePhotoId);
    public SharePhoto getSharePhotoId(String sharePhotoId);
    public  SharePhotoResponse getSharePhotoByItemId(String sharePhotoItemId,String myUserId);



//    /**
//     * 删除SharePhotoItem 以及相关评论
//     *
//     * @param sharePhotoItemId SharePhotoItemId
//     */
//    public void deleteSharePhotoItemAndRelevantComments(String sharePhotoItemId);

    /**
     * 删除SharePhoto 以及所有的SharePhotoItem 和 评论信息
     *
     * @param sharePhotoId
     */
    public void deleteSharePhotoAndRelevantInfo(String sharePhotoId);

    /**
     * 删除SharePhoto 以及所有的SharePhotoItem 和 评论信息
     *
     * @param sharePhoto
     */
    public void deleteSharePhotoAndRelevantInfo(SharePhoto sharePhoto);

    public SharePhotoResponse updateSupportStatusForSharePhotoItem(String userId, String sharePhotoItemId, boolean isSupport);


}
